﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Escuela.Forms;

namespace Escuela
{
    public partial class Profesores : Form
    {
        private int acep;
        private Instituto inst;


        public Profesores(Instituto inst)
        {
            InitializeComponent();
            acep = 0;
            this.inst = inst;
            
        }

        private void Profesores_Load(object sender, EventArgs e)
        {
            try
            {
                // TODO: This line of code loads data into the 'escuelaDataSet.coop_profesor_GetAll' table. You can move, or remove it, as needed.
                this.coop_profesor_GetAllTableAdapter1.Fill(this.escuelaDataSet.coop_profesor_GetAll);

                this.enlazarDataGrid();
            }
            catch
            { }
        }

        private void Nuevo_Click(object sender, EventArgs e)
        {

            try
            {
                acep = 1;
                clearTxt();
                enableTxt();
                disablebtn();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Se produjo una excepcion al habilitar campos para nuevo profesor: " + ex.Message, "Error");
            }
            //this.maskedfecIng.Enabled = false;
            //this.maskedfecIng.Visible = true;
            //this.maskedfecIng.Enabled = true;
            //this.maskedfecIng.Visible = false;

        }

        private void Cancelar_Click(object sender, EventArgs e)
        {
            clearTxt();
            disableTxt();
            enablebtn();
            //profesoresBindingSource.RemoveFilter();

        }

        private void Editar_Click(object sender, EventArgs e)
        {
            if (this.masklegajo.Text != "")
            {
                acep = 2;
                disablebtn();
                enableTxt();
                this.masklegajo.Enabled = false;
            }
            else
            {
                MessageBox.Show("Debe Seleccionar un Profesor", "Advertencia");
            }

        }

        private void Borrar_Click(object sender, EventArgs e)
        {
            if (this.masklegajo.Text != null && this.masklegajo.Text.Trim() != "")
            {
                acep = 3;
                this.disablebtn();
            }
            else
            {
                MessageBox.Show("Debe Seleccionar un Profesor", "Advertencia");
            }
        }

        private void Buscar_Click(object sender, EventArgs e)
        {
            acep = 4;
            disablebtn();
            enableTxt();
            this.masklegajo.Enabled = true;
            this.maskedFecNac.Enabled = false;
            this.maskedfecIng.Enabled = false;
            this.TextBoxTelefono.Enabled = false;
            this.TextBoxCelular.Enabled = false;
            this.textBoxDireccion.Enabled = false;
            this.txtCorreo.Enabled = false;
        }


        private void enableTxt()
        {
            //this.masklegajo.Enabled = true;
            this.txtDNI.Enabled = true;
            this.txtNom.Enabled = true;
            this.txtApe.Enabled = true;
            this.maskedFecNac.Enabled = true;
            this.maskedfecIng.Enabled = true;
            //this.TextBoxfecIng.Enabled = true;
            this.TextBoxTelefono.Enabled = true;
            this.TextBoxCelular.Enabled = true;
            this.textBoxDireccion.Enabled = true;
            this.txtCorreo.Enabled = true;
        }

        private void disableTxt()
        {
            //this.masklegajo.Enabled = true;
            this.txtDNI.Enabled = false;
            this.txtNom.Enabled = false;
            this.txtApe.Enabled = false;
            this.maskedFecNac.Enabled = false;
            this.maskedfecIng.Enabled = false;
            this.maskedfecIng.Enabled = false;
            this.TextBoxTelefono.Enabled = false;
            this.TextBoxCelular.Enabled = false;
            this.textBoxDireccion.Enabled = false;
            this.txtCorreo.Enabled = false;
        }
        private void clearTxt()
        {
            this.masklegajo.Clear();
            this.txtDNI.Clear();
            this.txtNom.Clear();
            this.txtApe.Clear();
            this.maskedFecNac.ResetText();
            this.maskedfecIng.ResetText();
            this.TextBoxTelefono.Clear();
            this.textBoxDireccion.Clear();
            this.txtCorreo.Clear();
        }

        private void disablebtn()
        {
            this.Nuevo.Enabled = false;
            this.Editar.Enabled = false;
            this.Buscar.Enabled = false;
            this.Borrar.Enabled = false;
            this.Aceptar.Enabled = true;
            this.Cancelar.Enabled = true;
            this.VerCursos.Enabled = false;
            this.Pagos.Enabled = false;
            this.Cerrar.Enabled = false;
        }

        private void enablebtn()
        {
            this.Nuevo.Enabled = true;
            this.Editar.Enabled = true;
            this.Buscar.Enabled = true;
            this.Borrar.Enabled = true;
            this.Aceptar.Enabled = false;
            this.Cancelar.Enabled = false;
            this.VerCursos.Enabled = true;
            this.Pagos.Enabled = true;
            this.Cerrar.Enabled = true;
        }

        private void profesoresBindingSource_CurrentChanged(object sender, EventArgs e)
        {

        }

        private void dataGridView1_CellClick_1(object sender, DataGridViewCellEventArgs e)
        {
            //int i = this.dataGridView1.CurrentRow.Index;
            //if (i >= 0)
            //{
            //    string NroAl = dataGridView1.Rows[i].Cells[0].Value.ToString();
            //    this.masklegajo.Text = NroAl.Trim();

            //    string dni = dataGridView1.Rows[i].Cells[3].Value.ToString();
            //    this.txtDNI.Text = dni.Trim();

            //    string nombre = dataGridView1.Rows[i].Cells[1].Value.ToString();
            //    this.txtNom.Text = nombre.Trim();

            //    string apellido = dataGridView1.Rows[i].Cells[2].Value.ToString();
            //    this.txtApe.Text = apellido.Trim();

            //    string telefono = dataGridView1.Rows[i].Cells[5].Value.ToString();
            //    this.TextBoxTelefono.Text = telefono.Trim();

            //    string celular = dataGridView1.Rows[i].Cells[6].Value.ToString();
            //    this.TextBoxCelular.Text = celular.Trim();

            //    string fecNac = dataGridView1.Rows[i].Cells[4].Value.ToString();
                
            //    this.maskedFecNac.Text = fecNac.Trim();

            //    string fecIng = dataGridView1.Rows[i].Cells[12].Value.ToString();
            //    this.maskedfecIng.Text = fecIng.Trim();

            //    string calle = dataGridView1.Rows[i].Cells[7].Value.ToString();
            //    this.txtCalle.Text = calle.Trim();

            //    string nro = dataGridView1.Rows[i].Cells[8].Value.ToString();
            //    this.maskNro.Text = nro.Trim();

            //    string dpto = dataGridView1.Rows[i].Cells[9].Value.ToString();
            //    this.txtDpto.Text = dpto.Trim();

            //    string localidad = dataGridView1.Rows[i].Cells[10].Value.ToString();
            //    this.txtLocalidad.Text = localidad.Trim();

            //    string email = dataGridView1.Rows[i].Cells[11].Value.ToString();
            //    this.txtCorreo.Text = email.Trim();
            //}
        }

        private void button4_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (this.masklegajo.Text != "")
            {
                try
                {
                    int idAlumno = Convert.ToInt32(this.masklegajo.Text.ToString().Trim());
                    string nombre = this.txtNom.Text.ToString().Trim();
                    string apellido = this.txtApe.Text.ToString().Trim();
                    cursosProfesores cp = new cursosProfesores(idAlumno, nombre, apellido);
                    cp.Show(this);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Excepcion buscando cursos del profesor " + ex.Message, "ERROR");
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar un profesor", "Atencion");
            }
        }

        private void enlazarDataGrid()
        {
            //texto
            this.masklegajo.DataBindings.Add("Text", dataGridView1.DataSource, "id");
            this.txtDNI.DataBindings.Add("Text", dataGridView1.DataSource, "dni");
            this.txtNom.DataBindings.Add("Text", dataGridView1.DataSource, "nombre");
            this.txtApe.DataBindings.Add("Text", dataGridView1.DataSource, "apellido");
            this.TextBoxTelefono.DataBindings.Add("Text", dataGridView1.DataSource, "telefono");
            this.TextBoxCelular.DataBindings.Add("Text", dataGridView1.DataSource, "celular");
            //direccon
            this.textBoxDireccion.DataBindings.Add("Text", dataGridView1.DataSource, "direccion");
            this.txtCorreo.DataBindings.Add("Text", dataGridView1.DataSource, "email");
            
            //Combo
            this.maskedFecNac.DataBindings.Add("Text", dataGridView1.DataSource, "fecha_nacimiento");
            this.maskedfecIng.DataBindings.Add("Text", dataGridView1.DataSource, "fecha_ingreso");
            


        }

        private void Pagos_Click(object sender, EventArgs e)
        {
            try
            {
                PagosProfesoresForm ppf = new PagosProfesoresForm(this.inst, Convert.ToInt32(this.masklegajo.Text.Trim()));
                ppf.Show(this);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error abriendo formulario. " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void Nuevo_Click_1(object sender, EventArgs e)
        {
            try
            {
                acep = 1;
                disableBtn();
                enableBox();
                limpiarBox();
                this.masklegajo.Enabled = false;
                //this.maskedfecIng.Visible = false;
                this.maskedfecIng.Visible = true;
                this.maskedfecIng.Enabled = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Se produjo un error al Habilitar campo para nuevo profesor" + ex.Message);
            }

        }

        private void Cancelar_Click_1(object sender, EventArgs e)
        {
            limpiarBox();
            disableBox();
            enableBtn();
        }
        protected void limpiarBox()
        {
            this.txtDNI.Clear();
            this.masklegajo.Clear();
            this.txtDNI.Clear();
            this.txtNom.Clear();
            this.txtApe.Clear();
            this.TextBoxTelefono.Clear();
            this.TextBoxCelular.Clear();
            this.maskedFecNac.ResetText();

            //this.maskedfecIng.Clear();
            this.textBoxDireccion.Clear();
            this.txtCorreo.Clear();
        }

        protected void enableBox()
        {
            this.txtDNI.Enabled = true;
            this.masklegajo.Enabled = true;
            this.txtDNI.Enabled = true;
            this.txtNom.Enabled = true;
            this.txtApe.Enabled = true;
            this.TextBoxTelefono.Enabled = true;
            this.TextBoxCelular.Enabled = true;
            this.maskedFecNac.Enabled = true;
            this.maskedfecIng.Enabled = true;
            this.textBoxDireccion.Enabled = true;
            this.txtCorreo.Enabled = true;
        }

        protected void disableBox()
        {
            this.txtDNI.Enabled = false;
            this.masklegajo.Enabled = false;
            this.txtDNI.Enabled = false;
            this.txtNom.Enabled = false;
            this.txtApe.Enabled = false;
            this.TextBoxTelefono.Enabled = false;
            this.TextBoxCelular.Enabled = false;
            this.maskedFecNac.Enabled = false;
            this.maskedfecIng.Enabled = false;
            this.textBoxDireccion.Enabled = false;
            this.txtCorreo.Enabled = false;
        }
        protected void disableBtn()
        {
            this.Aceptar.Enabled = true;
            this.Cancelar.Enabled = true;
            this.Nuevo.Enabled = false;
            this.Editar.Enabled = false;
            this.Borrar.Enabled = false;
            this.Buscar.Enabled = false;
            this.VerCursos.Enabled = false;
            this.Pagos.Enabled = false;
            this.Cerrar.Enabled = false;

        }

        protected void enableBtn()
        {
            this.Aceptar.Enabled = false;
            this.Cancelar.Enabled = false;
            this.Nuevo.Enabled = true;
            this.Editar.Enabled = true;
            this.Borrar.Enabled = true;
            this.Buscar.Enabled = true;
            this.VerCursos.Enabled = true;
            this.Pagos.Enabled = true;
            this.Cerrar.Enabled = true;
        }

        private void Aceptar_Click_1(object sender, EventArgs e)
        {
             switch (acep)
            {
                #region Agregar
                case 1:
                    try
                    {
                        Profesor al = new Profesor();
                        al.Nombre = this.txtNom.Text.ToString().Trim();
                        al.Apellido = this.txtApe.Text.ToString().Trim();
                        al.Dni = this.txtDNI.Text.ToString().Replace(".", "").Trim();
                        al.FechaDeNacimiento = Convert.ToDateTime(this.maskedFecNac.Text);
                        al.FechaDeIngreso = Convert.ToDateTime(this.maskedfecIng.Text);
                        al.Telefono = this.TextBoxTelefono.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        al.Celular = TextBoxCelular.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        //al.calle = txtCalle.Text.ToString().Trim();
                        //al.numero = Convert.ToInt32(maskNro.Text);
                        //al.departamento = this.txtDpto.Text.ToString();
                        //al.localidad = txtLocalidad.Text.ToString().Trim();
                        
                        //Direccion

                        al.Direccion = textBoxDireccion.Text.ToString().Trim();
                        al.Email = txtCorreo.Text.ToString();



                        if (this.inst.darDeAltaProfesor(al))
                        {
                            MessageBox.Show("Profesor agregado con Exito", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            clearTxt();
                            disableTxt();
                            enablebtn();
            
                            // TODO: esta línea de código carga datos en la tabla 'dataSet1.coop_alumno_GetAll' Puede moverla o quitarla según sea necesario.
                            this.coop_profesor_GetAllTableAdapter1.Fill(this.escuelaDataSet.coop_profesor_GetAll);
                        }
                        else
                        {
                            MessageBox.Show("Error al agregar profesor verifique los datos ingresados", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }


                        //verif = al.agregarAlumno(al);
                        //if (verif != 0)
                        //{
                        //    MessageBox.Show("Alumno agregado con Exito");
                        //    limpiarBox();
                        //    disableBox();
                        //    // TODO: esta línea de código carga datos en la tabla 'escuelaDataSet.alumnos' Puede moverla o quitarla según sea necesario.
                        //    this.alumnosTableAdapter.Fill(this.escuelaDataSet.alumnos);
                        //}
                        //else
                        //{
                        //    MessageBox.Show("Error al agregar alumno verifique los datos ingresados");
                        //}
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error al agregar profesor" + ex.Message);
                    }                    
                    break;
                #endregion

                #region Editar
                case 2:
                    try
                    {
                        Profesor al = new Profesor();
                        al.id = Convert.ToInt32(this.masklegajo.Text.Trim());
                        al.Nombre = this.txtNom.Text.ToString().Trim();
                        al.Apellido = this.txtApe.Text.ToString().Trim();
                        al.Dni = this.txtDNI.Text.ToString().Replace(".", "").Trim();
                        al.FechaDeNacimiento = Convert.ToDateTime(this.maskedFecNac.Text);
                        al.FechaDeIngreso = Convert.ToDateTime(this.maskedfecIng.Text);
                        al.Telefono = this.TextBoxTelefono.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        al.Celular = TextBoxCelular.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        al.Direccion = textBoxDireccion.Text.ToString().Trim();
                        al.Email = txtCorreo.Text.ToString();
                        al.Activo = true;

                        //int verif = 0;

                        if (inst.modificarProfesor(al))
                        {
                            MessageBox.Show("Profesor modificado con Exito");
                            this.coop_profesor_GetAllTableAdapter1.Fill(this.escuelaDataSet.coop_profesor_GetAll);
                            //clearTxt();
                            disableTxt();
                            enablebtn();
            

                            // TODO: esta línea de código carga datos en la tabla 'escuelaDataSet.alumnos' Puede moverla o quitarla según sea necesario.
                            //this.alumnosTableAdapter.Fill(this.escuelaDataSet.alumnos);
                        }
                        else
                        {
                            MessageBox.Show("Error al modificar Profesor. Verifique los datos ingresados");
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error al modificar profesor " + ex);
                    }
                    break;
                #endregion

                #region borrar
                case 3:
                 try
                    {
                        Profesor al = new Profesor();
                        al.id = Convert.ToInt32(this.masklegajo.Text.Trim());
                        al.Nombre = this.txtNom.Text.ToString().Trim();
                        al.Apellido = this.txtApe.Text.ToString().Trim();
                        al.Dni = this.txtDNI.Text.ToString().Replace(".", "").Trim();
                        al.FechaDeNacimiento = Convert.ToDateTime(this.maskedFecNac.Text);
                        al.FechaDeIngreso = Convert.ToDateTime(this.maskedfecIng.Text);
                        al.Telefono = this.TextBoxTelefono.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        al.Celular = TextBoxCelular.Text.ToString().Replace("(", "").Replace(")", "").Trim();
                        al.Direccion = textBoxDireccion.Text.ToString().Trim();
                        al.Email = txtCorreo.Text.ToString();
                        al.Activo = true;

                        //int verif = 0;

                        if (inst.eliminarProfesor(al))
                        {
                            MessageBox.Show("Profesor eliminado con Exito");
                            this.coop_profesor_GetAllTableAdapter1.Fill(this.escuelaDataSet.coop_profesor_GetAll);
                            //clearTxt();
                            disableTxt();
                            enablebtn();
            


                            // TODO: esta línea de código carga datos en la tabla 'escuelaDataSet.alumnos' Puede moverla o quitarla según sea necesario.
                            //this.alumnosTableAdapter.Fill(this.escuelaDataSet.alumnos);
                        }
                        else
                        {
                            MessageBox.Show("Error al eliminar Profesor. Verifique los datos ingresados");
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error al eliminar profesor " + ex);
                    }
                    break;   
                 
                 #endregion
        }

    }

        private void Editar_Click_1(object sender, EventArgs e)
        {
            if (this.masklegajo.Text != null && this.masklegajo.Text.Trim() != "")
            {
                acep = 2;
                enableBox();
                disableBtn();
                this.masklegajo.Enabled = false;
            }
            else
            {
                MessageBox.Show("Debe Seleccionar un profesor", "Advertencia");
            }

        }

        private void Borrar_Click_1(object sender, EventArgs e)
        {
            if (this.masklegajo.Text != null && this.masklegajo.Text.Trim() != "")
            {
                acep = 3;
                disableBtn();
                
            }
            else
            {
                MessageBox.Show("Debe Seleccionar un profesor", "Advertencia");
            }

        }

        private void Cerrar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void VerCursos_Click(object sender, EventArgs e)
        {
            int idProfesor = Convert.ToInt32(this.masklegajo.Text.Trim());
            String nombre = this.txtNom.Text.Trim();
            String apellido = this.txtApe.Text.Trim();
            cursosProfesores cp = new cursosProfesores(idProfesor, nombre, apellido);
            cp.Show(this);
        }

        private void Buscar_Click_1(object sender, EventArgs e)
        {

        }

     

        


    

      
        }
}
